home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DWinViewer.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  13.1 KB  |  317 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DWinViewer.p
  3.  
  4.      Contains:    Win32 Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DWinViewer;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DWINVIEWER__}
  27. {$SETC __QD3DWINVIEWER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DWinViewerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __QD3DGROUP__}
  37. {$I QD3DGroup.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN POWER}
  43. {$LibExport+}
  44.  
  45. {$IFC TARGET_OS_WIN32 }
  46.  
  47. TYPE
  48.     TQ3ViewerObject                        = Ptr;
  49.  
  50. CONST
  51.     kQ3ViewerShowBadge            = $01;
  52.     kQ3ViewerActive                = $02;
  53.     kQ3ViewerControllerVisible    = $04;
  54.     kQ3ViewerButtonCamera        = $08;
  55.     kQ3ViewerButtonTruck        = $10;
  56.     kQ3ViewerButtonOrbit        = $20;
  57.     kQ3ViewerButtonZoom            = $40;
  58.     kQ3ViewerButtonDolly        = $80;
  59.     kQ3ViewerButtonReset        = $0100;
  60.     kQ3ViewerButtonNone            = $0200;
  61.     kQ3ViewerOutputTextMode        = $0400;
  62.     kQ3ViewerDraggingInOff        = $0800;
  63.     kQ3ViewerDefault            = $8000;
  64.  
  65.  
  66.     kQ3ViewerEmpty                = 0;
  67.     kQ3ViewerHasModel            = $01;
  68.     kQ3ViewerHasUndo            = $02;
  69.  
  70.  
  71. TYPE
  72.     TQ3ViewerCameraView         = LONGINT;
  73. CONST
  74.     kQ3ViewerCameraRestore        = {TQ3ViewerCameraView}0;
  75.     kQ3ViewerCameraFit            = {TQ3ViewerCameraView}1;
  76.     kQ3ViewerCameraFront        = {TQ3ViewerCameraView}2;
  77.     kQ3ViewerCameraBack            = {TQ3ViewerCameraView}3;
  78.     kQ3ViewerCameraLeft            = {TQ3ViewerCameraView}4;
  79.     kQ3ViewerCameraRight        = {TQ3ViewerCameraView}5;
  80.     kQ3ViewerCameraTop            = {TQ3ViewerCameraView}6;
  81.     kQ3ViewerCameraBottom        = {TQ3ViewerCameraView}7;
  82.  
  83.  
  84. {*****************************************************************************
  85.  **                                                                             **
  86.  **                                WM_NOTIFY structures                           **
  87.  **                                                                             **
  88.  ****************************************************************************}
  89.  
  90. TYPE
  91.     TQ3ViewerDropFilesPtr = ^TQ3ViewerDropFiles;
  92.     TQ3ViewerDropFiles = RECORD
  93.         _nmhdr:                    NMHDR;
  94.         hDrop:                    HANDLE;
  95.     END;
  96.  
  97.     TQ3ViewerSetViewPtr = ^TQ3ViewerSetView;
  98.     TQ3ViewerSetView = RECORD
  99.         _nmhdr:                    NMHDR;
  100.         view:                    TQ3ViewerCameraView;
  101.     END;
  102.  
  103.     TQ3ViewerSetViewNumberPtr = ^TQ3ViewerSetViewNumber;
  104.     TQ3ViewerSetViewNumber = RECORD
  105.         _nmhdr:                    NMHDR;
  106.         number:                    UInt32;
  107.     END;
  108.  
  109.     TQ3ViewerButtonSetPtr = ^TQ3ViewerButtonSet;
  110.     TQ3ViewerButtonSet = RECORD
  111.         _nmhdr:                    NMHDR;
  112.         button:                    UInt32;
  113.     END;
  114.  
  115. {*****************************************************************************
  116.  **                                                                             **
  117.  **                                WM_NOTIFY defines                               **
  118.  **                                                                             **
  119.  ****************************************************************************}
  120. {*****************************************************************************
  121.  **                                                                             **
  122.  **                            Win32 Window Class Name                           **
  123.  **        Can be passed as a parameter to CreateWindow or CreateWindowEx       **
  124.  **                                                                             **
  125.  ****************************************************************************}
  126.  
  127. {*****************************************************************************
  128.  **                                                                             **
  129.  **                            Win32 Clipboard type                              **
  130.  **                                                                             **
  131.  ****************************************************************************}
  132. {*****************************************************************************
  133.  **                                                                             **
  134.  **        Return viewer version number                                         **
  135.  **                                                                             **
  136.  ****************************************************************************}
  137. FUNCTION Q3WinViewerGetVersion(VAR majorRevision: UInt32; VAR minorRevision: UInt32): TQ3Status; C;
  138.  
  139. {*****************************************************************************
  140.  **                                                                             **
  141.  **        Return viewer release version number                                 **
  142.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  143.  **                                                                             **
  144.  ****************************************************************************}
  145. FUNCTION Q3WinViewerGetReleaseVersion(VAR releaseRevision: UInt32): TQ3Status; C;
  146.  
  147. {*****************************************************************************
  148.  **                                                                             **
  149.  **                        Creation and destruction                             **
  150.  **                Note that this is not a QuickDraw 3D object                     **
  151.  **                                                                             **
  152.  ****************************************************************************}
  153. FUNCTION Q3WinViewerNew(window: HWND; {CONST}VAR rect: RECT; flags: UInt32): TQ3ViewerObject; C;
  154. FUNCTION Q3WinViewerDispose(viewer: TQ3ViewerObject): TQ3Status; C;
  155.  
  156. {*****************************************************************************
  157.  **                                                                             **
  158.  **                    Functions to attach data to a WinViewer                     **
  159.  **                                                                             **
  160.  ****************************************************************************}
  161. FUNCTION Q3WinViewerUseFile(viewer: TQ3ViewerObject; fileHandle: HANDLE): TQ3Status; C;
  162. FUNCTION Q3WinViewerUseData(viewer: TQ3ViewerObject; data: UNIV Ptr; size: UInt32): TQ3Status; C;
  163.  
  164. {*****************************************************************************
  165.  **                                                                             **
  166.  **                Functions to write data out from the WinViewer                 **
  167.  **                                                                             **
  168.  ****************************************************************************}
  169. FUNCTION Q3WinViewerWriteFile(viewer: TQ3ViewerObject; fileHandle: HANDLE): TQ3Status; C;
  170. FUNCTION Q3WinViewerWriteData(viewer: TQ3ViewerObject; data: UNIV Ptr; dataSize: UInt32; VAR actualDataSize: UInt32): TQ3Status; C;
  171.  
  172. {*****************************************************************************
  173.  **                                                                             **
  174.  **        Use this function to force the WinViewer to re-draw                     **
  175.  **                                                                             **
  176.  ****************************************************************************}
  177. FUNCTION Q3WinViewerDraw(viewer: TQ3ViewerObject): TQ3Status; C;
  178. FUNCTION Q3WinViewerDrawContent(viewer: TQ3ViewerObject): TQ3Status; C;
  179. FUNCTION Q3WinViewerDrawControlStrip(viewer: TQ3ViewerObject): TQ3Status; C;
  180.  
  181. {*****************************************************************************
  182.  **                                                                             **
  183.  **        Function used by the WinViewer to filter and handle events             **
  184.  **                                                                             **
  185.  ****************************************************************************}
  186. FUNCTION Q3WinViewerMouseDown(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  187. FUNCTION Q3WinViewerContinueTracking(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  188. FUNCTION Q3WinViewerMouseUp(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  189.  
  190. {*****************************************************************************
  191.  **                                                                             **
  192.  **        This function returns a Bitmap of the contents of the                  **
  193.  **        WinViewer's window.  The application should dispose the Bitmap.         **
  194.  **                                                                             **
  195.  ****************************************************************************}
  196. FUNCTION Q3WinViewerGetBitmap(viewer: TQ3ViewerObject): HBITMAP; C;
  197.  
  198. {*****************************************************************************
  199.  **                                                                             **
  200.  **                    Calls for dealing with Buttons                             **
  201.  **                                                                             **
  202.  ****************************************************************************}
  203. FUNCTION Q3WinViewerGetButtonRect(viewer: TQ3ViewerObject; button: UInt32; VAR rectangle: RECT): TQ3Status; C;
  204. FUNCTION Q3WinViewerGetCurrentButton(viewer: TQ3ViewerObject): UInt32; C;
  205. FUNCTION Q3WinViewerSetCurrentButton(viewer: TQ3ViewerObject; button: UInt32): TQ3Status; C;
  206.  
  207. {*****************************************************************************
  208.  **                                                                             **
  209.  **        Functions to set/get the group to be displayed by the WinViewer.     **
  210.  **                                                                             **
  211.  ****************************************************************************}
  212. FUNCTION Q3WinViewerUseGroup(viewer: TQ3ViewerObject; group: TQ3GroupObject): TQ3Status; C;
  213. FUNCTION Q3WinViewerGetGroup(viewer: TQ3ViewerObject): TQ3GroupObject; C;
  214.  
  215. {*****************************************************************************
  216.  **                                                                             **
  217.  **        Functions to set/get the color used to clear the window                 **
  218.  **                                                                             **
  219.  ****************************************************************************}
  220. FUNCTION Q3WinViewerSetBackgroundColor(viewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): TQ3Status; C;
  221. FUNCTION Q3WinViewerGetBackgroundColor(viewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): TQ3Status; C;
  222.  
  223. {*****************************************************************************
  224.  **                                                                             **
  225.  **        Getting/Setting a WinViewer's View object.  Disposal is needed.         **
  226.  **                                                                             **
  227.  ****************************************************************************}
  228. FUNCTION Q3WinViewerGetView(viewer: TQ3ViewerObject): TQ3ViewObject; C;
  229. FUNCTION Q3WinViewerRestoreView(viewer: TQ3ViewerObject): TQ3Status; C;
  230.  
  231. {*****************************************************************************
  232.  **                                                                             **
  233.  **        Calls for setting/getting WinViewer flags                             **
  234.  **                                                                             **
  235.  ****************************************************************************}
  236. FUNCTION Q3WinViewerSetFlags(viewer: TQ3ViewerObject; flags: UInt32): TQ3Status; C;
  237. FUNCTION Q3WinViewerGetFlags(viewer: TQ3ViewerObject): UInt32; C;
  238.  
  239. {*****************************************************************************
  240.  **                                                                             **
  241.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  242.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  243.  **        or the current dimensions of the window (if you do a Set).             **
  244.  **                                                                             **
  245.  ****************************************************************************}
  246. FUNCTION Q3WinViewerSetBounds(viewer: TQ3ViewerObject; VAR bounds: RECT): TQ3Status; C;
  247. FUNCTION Q3WinViewerGetBounds(viewer: TQ3ViewerObject; VAR bounds: RECT): TQ3Status; C;
  248. FUNCTION Q3WinViewerSetDimension(viewer: TQ3ViewerObject; width: UInt32; height: UInt32): TQ3Status; C;
  249. FUNCTION Q3WinViewerGetDimension(viewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): TQ3Status; C;
  250. FUNCTION Q3WinViewerGetMinimumDimension(viewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): TQ3Status; C;
  251.  
  252. {*****************************************************************************
  253.  **                                                                             **
  254.  **                            Window related calls                             **
  255.  **                                                                             **
  256.  ****************************************************************************}
  257. FUNCTION Q3WinViewerSetWindow(viewer: TQ3ViewerObject; window: HWND): TQ3Status; C;
  258. FUNCTION Q3WinViewerGetWindow(viewer: TQ3ViewerObject): HWND; C;
  259. FUNCTION Q3WinViewerGetViewer(theWindow: HWND): TQ3ViewerObject; C;
  260. FUNCTION Q3WinViewerGetControlStrip(viewer: TQ3ViewerObject): HWND; C;
  261.  
  262. {*****************************************************************************
  263.  **                                                                             **
  264.  **        Adjust Cursor provided for compatibility with Mac Viewer             **
  265.  **                                                                             **
  266.  ****************************************************************************}
  267. FUNCTION Q3WinViewerAdjustCursor(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): TQ3Boolean; C;
  268. FUNCTION Q3WinViewerCursorChanged(viewer: TQ3ViewerObject): TQ3Status; C;
  269.  
  270. {*****************************************************************************
  271.  **                                                                             **
  272.  **        Returns the state of the WinViewer.  See the constant defined at the **
  273.  **        top of this file.                                                     **
  274.  **                                                                             **
  275.  ****************************************************************************}
  276. FUNCTION Q3WinViewerGetState(viewer: TQ3ViewerObject): UInt32; C;
  277.  
  278. {*****************************************************************************
  279.  **                                                                             **
  280.  **                            Clipboard utilities                                 **
  281.  **                                                                             **
  282.  ****************************************************************************}
  283. FUNCTION Q3WinViewerClear(viewer: TQ3ViewerObject): TQ3Status; C;
  284. FUNCTION Q3WinViewerCut(viewer: TQ3ViewerObject): TQ3Status; C;
  285. FUNCTION Q3WinViewerCopy(viewer: TQ3ViewerObject): TQ3Status; C;
  286. FUNCTION Q3WinViewerPaste(viewer: TQ3ViewerObject): TQ3Status; C;
  287.  
  288. {*****************************************************************************
  289.  **                                                                             **
  290.  **                                Undo                                          **
  291.  **                                                                             **
  292.  ****************************************************************************}
  293. FUNCTION Q3WinViewerUndo(viewer: TQ3ViewerObject): TQ3Status; C;
  294. FUNCTION Q3WinViewerGetUndoString(viewer: TQ3ViewerObject; theString: CStringPtr; stringSize: UInt32; VAR actualSize: UInt32): TQ3Boolean; C;
  295.  
  296. {*****************************************************************************
  297.  **                                                                             **
  298.  **                            New Camera Stuff                                 **
  299.  **                                                                             **
  300.  ****************************************************************************}
  301. FUNCTION Q3WinViewerGetCameraCount(viewer: TQ3ViewerObject; VAR count: UInt32): TQ3Status; C;
  302. FUNCTION Q3WinViewerSetCameraNumber(viewer: TQ3ViewerObject; cameraNo: UInt32): TQ3Status; C;
  303. FUNCTION Q3WinViewerSetCameraView(viewer: TQ3ViewerObject; viewType: TQ3ViewerCameraView): TQ3Status; C;
  304. {$ENDC}  {TARGET_OS_WIN32}
  305.  
  306.  
  307. {$ALIGN RESET}
  308. {$POP}
  309.  
  310. {$SETC UsingIncludes := QD3DWinViewerIncludes}
  311.  
  312. {$ENDC} {__QD3DWINVIEWER__}
  313.  
  314. {$IFC NOT UsingIncludes}
  315.  END.
  316. {$ENDC}
  317.